In this notebook we consider the role of religious affiliation and religiosity in the first “think/believe” task, in which participants completed a series of fill-in-the-blanks by choosing between two options: “think” and “believe.”

NAs introduced by coercionNAs introduced by coercionNAs introduced by coercion

Demographics

First, let’s just look at how people in different countries replied to the relevant questions.

Religious affiliation

thb1_demo_regp_1_TEXT: “Are you a part of any religious group? If yes, what group?”

..._demo_rlgn: “What religion do you practice, if any?”

This question was included in the bigger “packet” (not in the “Think Believe” survey itself). It was open-response, but here I’ve done my best to code the respones as “Christian,” “Buddhist,” “Other religious,” or “Not religious.”

Seems to have been omitted in Ghana and Vanuatu?

Factor `religion` contains implicit NA, consider using `forcats::fct_explicit_na`

Combining thb1_demo_regp_1_TEXT and ..._demo_rlgn

Here I’ll count someone as “Christian” if I coded their response to either thb1_demo_regp_1_TEXT or ..._demo_rlgn as “Christian” (etc.).

Factor `new_relig` contains implicit NA, consider using `forcats::fct_explicit_na`

Religiosity

thb1_demo_regp: “Are you a part of any religious group?”

Factor `thb1_demo_regp` contains implicit NA, consider using `forcats::fct_explicit_na`

thb1_demo_rely: “From 1 to 7, how religious are you? (1 = not religious at all, 7 = extremely religious)”

Seems to have been omitted in Thailand?

Factor `thb1_demo_rely` contains implicit NA, consider using `forcats::fct_explicit_na`

thb1_demo_impr: “From 1 to 7, how important to you is your religious practice? (1 = not important at all, 7 = of utmost importance)”

Seems to have been omitted in Thailand?

Factor `thb1_demo_impr` contains implicit NA, consider using `forcats::fct_explicit_na`

thb1_demo_wors: “How often do you attend places of worship?”

Factor `thb1_demo_wors` contains implicit NA, consider using `forcats::fct_explicit_na`

thb1_demo_bgod: “What best describes your level of belief in God?”

Factor `thb1_demo_bgod` contains implicit NA, consider using `forcats::fct_explicit_na`

thb1_demo_bbuh: “What best describes your level of belief in Buddha?”

Factor `thb1_demo_bbuh` contains implicit NA, consider using `forcats::fct_explicit_na`

thb1_demo_bosp: “What best describes your level of belief in another spiritual being (other than God or Buddha)?”

Factor `thb1_demo_bosp` contains implicit NA, consider using `forcats::fct_explicit_na`

thb1_demo_atsn: "What best describes your attitude towards the supernatural?

Factor `thb1_demo_atsn` contains implicit NA, consider using `forcats::fct_explicit_na`

Response options:

  1. “There is no such thing as supernatural forces or beings”
  2. “We cannot know if there are supernatural forces and beings”
  3. “There might be supernatural forces and beings”
  4. “Supernatural forces and beings exist but we cannot know what they are like”
  5. “There definitely are supernatural forces and beings”

thb1_demo_imsn: “From 1 to 7, how important to you is your attitude toward the supernatural? (1 = not important at all, 7 = of utmost importance)”

Factor `thb1_demo_imsn` contains implicit NA, consider using `forcats::fct_explicit_na`

Analyses

Now, let’s look at how responses to our think/believe questions might have varied depending on religion/religiosity. For now, I’ll just focus on a couple of variables that seem to have been answered in reasonable ways.

Religious affiliation

Parameter β Std. Err. df t p
Intercept 0.58 0.02 28.67 23.74 <0.001 ***
Category (religious) 0.24 0.02 23.02 10.22 <0.001 ***
Religious affiliation (Christian vs. not religious) 0.01 0.01 89.31 0.68 0.497
Category (religious) × Religious affiliation (Christian vs. not religious) 0.02 0.01 2411.19 2.48 0.013 *

Religiosity

thb1_demo_rely: “From 1 to 7, how religious are you? (1 = not religious at all, 7 = extremely religious)”

r1.6 <- lmer(believe ~ super_cat * country * thb1_demo_rely_num
             + (1 + super_cat | thb1_subj) + (1 | question),
             data = d1_long %>% 
               filter(country != "Thailand") %>%
               mutate(thb1_demo_rely_num = scale(thb1_demo_rely_num)),
             contrasts = list(country = "contr.sum"))
contrasts dropped from factor country due to missing levelscontrasts dropped from factor country due to missing levelsModel failed to converge with max|grad| = 0.00896918 (tol = 0.002, component 1)contrasts dropped from factor country due to missing levelscontrasts dropped from factor country due to missing levels
Parameter β β' β'' Std. Err. df t p
Intercept 0.62 - - 0.03 26.80 23.21 <0.001 ***
Category (religious) 0.20 0.38 0.38 0.03 34.10 6.92 <0.001 ***
Country (US) -0.03 -0.04 -0.04 0.01 234.59 -2.19 0.029 *
Country (Ghana) 0.10 0.13 0.13 0.02 303.67 5.51 <0.001 ***
Country (China) -0.04 -0.06 -0.06 0.02 303.86 -2.48 0.014 *
How religious are you? 0.00 -0.01 -0.01 0.01 287.38 -0.55 0.585
Category (religious) × Country (US) 0.05 0.09 0.09 0.02 252.91 2.90 0.004 **
Category (religious) × Country (Ghana) -0.11 -0.15 -0.15 0.03 273.83 -4.23 <0.001 ***
Category (religious) × Country (China) 0.05 0.07 0.07 0.03 273.88 1.94 0.054
Category (religious) × How religious are you? 0.03 0.06 0.06 0.01 269.42 2.41 0.017 *
Country (US) × How religious are you? 0.02 0.03 0.03 0.01 240.09 1.87 0.063
Country (Ghana) × How religious are you? -0.03 -0.04 -0.04 0.01 302.12 -1.86 0.064
Country (China) × How religious are you? 0.00 0.00 0.00 0.02 303.01 0.07 0.941
Category (religious) × Country (US) × How religious are you? -0.01 -0.01 -0.01 0.02 255.52 -0.48 0.630
Category (religious) × Country (Ghana) × How religious are you? -0.02 -0.03 -0.03 0.02 273.47 -0.85 0.396
Category (religious) × Country (China) × How religious are you? 0.04 0.06 0.06 0.02 273.71 1.72 0.086

This analysis suggests that greater religiosity was associated with an increased distinction between religious and fact questions. (Note that this analysis omits participants from Thailand, who did not answer this question about religiosity.)

thb1_demo_impr: “From 1 to 7, how important to you is your religious practice? (1 = not important at all, 7 = of utmost importance)”

r1.7 <- lmer(believe ~ super_cat * country * thb1_demo_impr_num
             + (1 + super_cat | thb1_subj) + (1 | question),
             data = d1_long %>% 
               filter(country != "Thailand") %>%
               mutate(thb1_demo_impr_num = scale(thb1_demo_impr_num)),
             contrasts = list(country = "contr.sum"))
contrasts dropped from factor country due to missing levelscontrasts dropped from factor country due to missing levelscontrasts dropped from factor country due to missing levelscontrasts dropped from factor country due to missing levels
Parameter β β' β'' Std. Err. df t p
Intercept 0.61 - - 0.03 26.61 22.95 <0.001 ***
Category (religious) 0.19 0.37 0.37 0.03 33.62 6.62 <0.001 ***
Country (US) -0.02 -0.04 -0.04 0.01 229.00 -1.88 0.061
Country (Ghana) 0.09 0.13 0.13 0.02 300.94 5.63 <0.001 ***
Country (China) -0.04 -0.06 -0.06 0.02 301.85 -2.41 0.017 *
How important is your religious practice? 0.00 0.00 0.00 0.01 285.11 -0.14 0.892
Category (religious) × Country (US) 0.06 0.11 0.11 0.02 247.36 3.47 <0.001 ***
Category (religious) × Country (Ghana) -0.11 -0.15 -0.15 0.02 268.91 -4.33 <0.001 ***
Category (religious) × Country (China) 0.03 0.04 0.04 0.03 269.16 1.10 0.274
Category (religious) × How important is your religious practice? 0.03 0.05 0.05 0.01 264.73 2.20 0.029 *
Country (US) × How important is your religious practice? 0.02 0.03 0.03 0.01 235.72 1.78 0.077
Country (Ghana) × How important is your religious practice? -0.03 -0.04 -0.04 0.02 300.34 -1.81 0.071
Country (China) × How important is your religious practice? -0.01 -0.01 -0.01 0.02 300.94 -0.34 0.735
Category (religious) × Country (US) × How important is your religious practice? 0.02 0.02 0.02 0.02 250.45 0.81 0.422
Category (religious) × Country (Ghana) × How important is your religious practice? -0.01 -0.01 -0.01 0.02 268.83 -0.35 0.726
Category (religious) × Country (China) × How important is your religious practice? 0.01 0.01 0.01 0.02 268.98 0.23 0.818

This analysis suggests that more importance placed on religious practice was associated with an increased distinction between religious and fact questions. (Note that this analysis omits participants from Thailand, who did not answer this question about religiosity.)

thb1_demowors: “How often do you attend places of worship?”

r1.8 <- lmer(believe ~ super_cat * country * thb1_demo_wors_num
             + (1 + super_cat | thb1_subj) + (1 | question),
             data = d1_long %>% 
               mutate(thb1_demo_wors_num = scale(thb1_demo_wors_num)))
Parameter β β' β'' Std. Err. df t p
Intercept 0.59 - - 0.03 29.54 21.89 <0.001 ***
Category (religious) 0.22 0.42 0.42 0.03 38.24 7.45 <0.001 ***
Country (Gh.) 0.11 0.14 0.14 0.02 352.76 5.78 <0.001 ***
Country (Th.) -0.01 -0.02 -0.02 0.01 349.73 -1.02 0.306
Country (Ch.) -0.08 -0.09 -0.09 0.03 354.94 -2.46 0.014 *
Country (Vt.) -0.01 -0.01 -0.01 0.02 353.01 -0.44 0.657
How often do you attend places of worship? -0.02 -0.05 -0.05 0.01 344.93 -2.43 0.016 *
Category (religious) × Country (Gh.) -0.15 -0.19 -0.19 0.03 333.44 -5.48 <0.001 ***
Category (religious) × Country (Th.) 0.05 0.07 0.07 0.02 332.37 2.62 0.009 **
Category (religious) × Country (Ch.) 0.04 0.05 0.05 0.04 334.21 0.99 0.322
Category (religious) × Country (Vt.) -0.01 -0.01 -0.01 0.03 333.53 -0.34 0.734
Category (religious) × How often do you attend places of worship? 0.03 0.05 0.05 0.01 330.78 2.03 0.043 *
Country (Gh.) × How often do you attend places of worship? -0.01 -0.01 -0.01 0.02 353.40 -0.30 0.764
Country (Th.) × How often do you attend places of worship? -0.02 -0.03 -0.03 0.02 353.10 -1.33 0.186
Country (Ch.) × How often do you attend places of worship? -0.02 -0.03 -0.03 0.02 354.26 -0.95 0.343
Country (Vt.) × How often do you attend places of worship? 0.03 0.03 0.03 0.02 353.86 1.37 0.173
Category (religious) × Country (Gh.) × How often do you attend places of worship? 0.01 0.02 0.02 0.03 333.70 0.47 0.636
Category (religious) × Country (Th.) × How often do you attend places of worship? -0.04 -0.05 -0.05 0.02 333.59 -1.57 0.118
Category (religious) × Country (Ch.) × How often do you attend places of worship? 0.03 0.04 0.04 0.03 333.99 0.83 0.405
Category (religious) × Country (Vt.) × How often do you attend places of worship? -0.03 -0.04 -0.04 0.03 333.86 -0.98 0.327

This analysis suggests that frequency of attendence was associated with an increased distinction between religious and fact questions.

LS0tCnRpdGxlOiAiVGhpbmsgQmVsaWV2ZSAxIChmb3JjZWQgY2hvaWNlKTogUmVsaWdpb3VzIGFmZmlsaWF0aW9uIGFuZCByZWxpZ2lvc2l0eSIKb3V0cHV0OiAKICBodG1sX25vdGVib29rOgogICAgdG9jOiB0cnVlCiAgICB0b2NfZmxvYXQ6IHRydWUKLS0tCgpgYGB7ciBzZXR1cH0Ka25pdHI6Om9wdHNfY2h1bmskc2V0KGVjaG8gPSBGLCBtZXNzYWdlID0gRikKYGBgCgpJbiB0aGlzIG5vdGVib29rIHdlIGNvbnNpZGVyIHRoZSByb2xlIG9mIHJlbGlnaW91cyBhZmZpbGlhdGlvbiBhbmQgcmVsaWdpb3NpdHkgaW4gdGhlIGZpcnN0ICJ0aGluay9iZWxpZXZlIiB0YXNrLCBpbiB3aGljaCBwYXJ0aWNpcGFudHMgY29tcGxldGVkIGEgc2VyaWVzIG9mIGZpbGwtaW4tdGhlLWJsYW5rcyBieSBjaG9vc2luZyBiZXR3ZWVuIHR3byBvcHRpb25zOiAidGhpbmsiIGFuZCAiYmVsaWV2ZS4iCgoKYGBge3J9CnNvdXJjZSgiLi9zY3JpcHRzL2RlcGVuZGVuY2llcy5SIikKc291cmNlKCIuL3NjcmlwdHMvY3VzdG9tX2Z1bnMuUiIpCnNvdXJjZSgiLi9zY3JpcHRzL3Zhcl9yZWNvZGVfY29udHJhc3QuUiIpCnNvdXJjZSgiLi9zY3JpcHRzL2RhdGFfcHJlcC5SIikKYGBgCgoKIyBEZW1vZ3JhcGhpY3MKCkZpcnN0LCBsZXQncyBqdXN0IGxvb2sgYXQgaG93IHBlb3BsZSBpbiBkaWZmZXJlbnQgY291bnRyaWVzIHJlcGxpZWQgdG8gdGhlIHJlbGV2YW50IHF1ZXN0aW9ucy4gCgojIyBSZWxpZ2lvdXMgYWZmaWxpYXRpb24KCiMjIyBgdGhiMV9kZW1vX3JlZ3BfMV9URVhUYDogIkFyZSB5b3UgYSBwYXJ0IG9mIGFueSByZWxpZ2lvdXMgZ3JvdXA/IElmIHllcywgd2hhdCBncm91cD8iCgpgYGB7ciwgZmlnLndpZHRoID0gNCwgZmlnLmFzcCA9IDAuNH0KZGVtb19wbG90X2Z1bihkMSwgc2FtcGxlX3NpemVfZDEsICJ0aGIxX3JlbGlnaW9uIikgKwogIGxhYnMoeCA9ICJBcmUgeW91IGEgcGFydCBvZiBhbnkgcmVsaWdpb3VzIGdyb3VwPyBJZiB5ZXMsIHdoYXQgZ3JvdXA/IiwgCiAgICAgICB5ID0gInByb3BvcnRpb24iKSArCiAgdGhlbWUoYXhpcy50ZXh0LnggPSBlbGVtZW50X3RleHQoYW5nbGUgPSA0NSwgaGp1c3QgPSAxLCB2anVzdCA9IDEpKQpgYGAKCiMjIyBgLi4uX2RlbW9fcmxnbmA6ICJXaGF0IHJlbGlnaW9uIGRvIHlvdSBwcmFjdGljZSwgaWYgYW55PyIKClRoaXMgcXVlc3Rpb24gd2FzIGluY2x1ZGVkIGluIHRoZSBiaWdnZXIgInBhY2tldCIgKG5vdCBpbiB0aGUgIlRoaW5rIEJlbGlldmUiIHN1cnZleSBpdHNlbGYpLiBJdCB3YXMgb3Blbi1yZXNwb25zZSwgYnV0IGhlcmUgSSd2ZSBkb25lIG15IGJlc3QgdG8gY29kZSB0aGUgcmVzcG9uZXMgYXMgIkNocmlzdGlhbiwiICJCdWRkaGlzdCwiICJPdGhlciByZWxpZ2lvdXMsIiBvciAiTm90IHJlbGlnaW91cy4iCgpTZWVtcyB0byBoYXZlIGJlZW4gb21pdHRlZCBpbiBHaGFuYSBhbmQgVmFudWF0dT8KCmBgYHtyLCBmaWcud2lkdGggPSA0LCBmaWcuYXNwID0gMC40fQpkZW1vX3Bsb3RfZnVuKGQxLCBzYW1wbGVfc2l6ZV9kMSwgInJlbGlnaW9uIikgKwogIGxhYnMoeCA9ICJXaGF0IHJlbGlnaW9uIGRvIHlvdSBwcmFjdGljZSwgaWYgYW55PyIsIAogICAgICAgeSA9ICJwcm9wb3J0aW9uIikgKwogIHRoZW1lKGF4aXMudGV4dC54ID0gZWxlbWVudF90ZXh0KGFuZ2xlID0gNDUsIGhqdXN0ID0gMSwgdmp1c3QgPSAxKSkKYGBgCgojIyMgQ29tYmluaW5nIGB0aGIxX2RlbW9fcmVncF8xX1RFWFRgIGFuZCBgLi4uX2RlbW9fcmxnbmAKCkhlcmUgSSdsbCBjb3VudCBzb21lb25lIGFzICJDaHJpc3RpYW4iIGlmIEkgY29kZWQgdGhlaXIgcmVzcG9uc2UgdG8gKmVpdGhlciogYHRoYjFfZGVtb19yZWdwXzFfVEVYVGAgb3IgYC4uLl9kZW1vX3JsZ25gIGFzICJDaHJpc3RpYW4iIChldGMuKS4KCmBgYHtyLCBmaWcud2lkdGggPSA0LCBmaWcuYXNwID0gMC40fQpkZW1vX3Bsb3RfZnVuKGQxICU+JSAKICAgICAgICAgICAgICAgIG11dGF0ZShuZXdfcmVsaWcgPSBjYXNlX3doZW4oCiAgICAgICAgICAgICAgICAgIHRoYjFfcmVsaWdpb24gPT0gIkNocmlzdGlhbiIgfCAKICAgICAgICAgICAgICAgICAgICByZWxpZ2lvbiA9PSAiQ2hyaXN0aWFuIiB+ICJDaHJpc3RpYW4iLAogICAgICAgICAgICAgICAgICB0aGIxX3JlbGlnaW9uID09ICJCdWRkaGlzdCIgfCAKICAgICAgICAgICAgICAgICAgICByZWxpZ2lvbiA9PSAiQnVkZGhpc3QiIH4gIkJ1ZGRoaXN0IiwKICAgICAgICAgICAgICAgICAgdGhiMV9yZWxpZ2lvbiA9PSAiT3RoZXIiIHwgCiAgICAgICAgICAgICAgICAgICAgcmVsaWdpb24gPT0gIk90aGVyIHJlbGlnaW91cyIgfiAiT3RoZXIgcmVsaWdpb3VzIiwKICAgICAgICAgICAgICAgICAgcmVsaWdpb24gPT0gIk5vdCByZWxpZ2lvdXMiIH4gIk5vdCByZWxpZ2lvdXMiLAogICAgICAgICAgICAgICAgICBUUlVFIH4gTkFfY2hhcmFjdGVyXykpICU+JSAKICAgICAgICAgICAgICAgIG11dGF0ZShuZXdfcmVsaWcgPSBmYWN0b3IobmV3X3JlbGlnLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGV2ZWxzID0gYygiQnVkZGhpc3QiLCAiQ2hyaXN0aWFuIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiT3RoZXIgcmVsaWdpb3VzIiwgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIk5vdCByZWxpZ2lvdXMiKSkpLCAKICAgICAgICAgICAgICBzYW1wbGVfc2l6ZV9kMSwgIm5ld19yZWxpZyIpICsKICBsYWJzKHggPSAiSW5mZXJyZWQgcmVsaWdpb24iLCAKICAgICAgIHkgPSAicHJvcG9ydGlvbiIpICsKICB0aGVtZShheGlzLnRleHQueCA9IGVsZW1lbnRfdGV4dChhbmdsZSA9IDQ1LCBoanVzdCA9IDEsIHZqdXN0ID0gMSkpCmBgYAoKCiMjIFJlbGlnaW9zaXR5CgojIyMgYHRoYjFfZGVtb19yZWdwYDogIkFyZSB5b3UgYSBwYXJ0IG9mIGFueSByZWxpZ2lvdXMgZ3JvdXA/IgoKYGBge3IsIGZpZy53aWR0aCA9IDQsIGZpZy5hc3AgPSAwLjR9CmRlbW9fcGxvdF9mdW4oZDEsIHNhbXBsZV9zaXplX2QxLCAidGhiMV9kZW1vX3JlZ3AiKSArCiAgbGFicyh4ID0gIkFyZSB5b3UgYSBwYXJ0IG9mIGFueSByZWxpZ2lvdXMgZ3JvdXA/IiwgCiAgICAgICB5ID0gInByb3BvcnRpb24iKQpgYGAKCiMjIyBgdGhiMV9kZW1vX3JlbHlgOiAiRnJvbSAxIHRvIDcsIGhvdyByZWxpZ2lvdXMgYXJlIHlvdT8gKDEgPSBub3QgcmVsaWdpb3VzIGF0IGFsbCwgNyA9CmV4dHJlbWVseSByZWxpZ2lvdXMpIgoKU2VlbXMgdG8gaGF2ZSBiZWVuIG9taXR0ZWQgaW4gVGhhaWxhbmQ/CgpgYGB7ciwgZmlnLndpZHRoID0gNCwgZmlnLmFzcCA9IDAuNH0KZGVtb19wbG90X2Z1bihkMSwgc2FtcGxlX3NpemVfZDEsICJ0aGIxX2RlbW9fcmVseSIpICsKICBsYWJzKHggPSAiRnJvbSAxIHRvIDcsIGhvdyByZWxpZ2lvdXMgYXJlIHlvdT8iLCAKICAgICAgIHkgPSAicHJvcG9ydGlvbiIpCmBgYAoKIyMjIGB0aGIxX2RlbW9faW1wcmA6ICJGcm9tIDEgdG8gNywgaG93IGltcG9ydGFudCB0byB5b3UgaXMgeW91ciByZWxpZ2lvdXMgcHJhY3RpY2U/ICAoMSA9IG5vdCBpbXBvcnRhbnQgYXQgYWxsLCA3ID0gb2YgdXRtb3N0IGltcG9ydGFuY2UpIgoKU2VlbXMgdG8gaGF2ZSBiZWVuIG9taXR0ZWQgaW4gVGhhaWxhbmQ/CgpgYGB7ciwgZmlnLndpZHRoID0gNCwgZmlnLmFzcCA9IDAuNH0KZGVtb19wbG90X2Z1bihkMSwgc2FtcGxlX3NpemVfZDEsICJ0aGIxX2RlbW9faW1wciIpICsKICBsYWJzKHggPSAiRnJvbSAxIHRvIDcsIGhvdyBpbXBvcnRhbnQgdG8geW91IGlzIHlvdXIgcmVsaWdpb3VzIHByYWN0aWNlPyIsIAogICAgICAgeSA9ICJwcm9wb3J0aW9uIikKYGBgCgojIyMgYHRoYjFfZGVtb193b3JzYDogIkhvdyBvZnRlbiBkbyB5b3UgYXR0ZW5kIHBsYWNlcyBvZiB3b3JzaGlwPyIKCmBgYHtyLCBmaWcud2lkdGggPSA0LCBmaWcuYXNwID0gMC40fQpkZW1vX3Bsb3RfZnVuKGQxLCBzYW1wbGVfc2l6ZV9kMSwgInRoYjFfZGVtb193b3JzIikgKwogIGxhYnMoeCA9ICJIb3cgb2Z0ZW4gZG8geW91IGF0dGVuZCBwbGFjZXMgb2Ygd29yc2hpcD8iLCAKICAgICAgIHkgPSAicHJvcG9ydGlvbiIpICsKICB0aGVtZShheGlzLnRleHQueCA9IGVsZW1lbnRfdGV4dChhbmdsZSA9IDQ1LCBoanVzdCA9IDEsIHZqdXN0ID0gMSkpCmBgYAoKIyMjIGB0aGIxX2RlbW9fYmdvZGA6ICJXaGF0IGJlc3QgZGVzY3JpYmVzIHlvdXIgbGV2ZWwgb2YgYmVsaWVmIGluIEdvZD8iCgpgYGB7ciwgZmlnLndpZHRoID0gNCwgZmlnLmFzcCA9IDAuNH0KZGVtb19wbG90X2Z1bihkMSwgc2FtcGxlX3NpemVfZDEsICJ0aGIxX2RlbW9fYmdvZCIpICsKICBsYWJzKHggPSAiV2hhdCBiZXN0IGRlc2NyaWJlcyB5b3VyIGxldmVsIG9mIGJlbGllZiBpbiBHb2Q/IiwgCiAgICAgICB5ID0gInByb3BvcnRpb24iKSArCiAgdGhlbWUoYXhpcy50ZXh0LnggPSBlbGVtZW50X3RleHQoYW5nbGUgPSA0NSwgaGp1c3QgPSAxLCB2anVzdCA9IDEpKQpgYGAKCiMjIyBgdGhiMV9kZW1vX2JidWhgOiAiV2hhdCBiZXN0IGRlc2NyaWJlcyB5b3VyIGxldmVsIG9mIGJlbGllZiBpbiBCdWRkaGE/IgoKYGBge3IsIGZpZy53aWR0aCA9IDQsIGZpZy5hc3AgPSAwLjR9CmRlbW9fcGxvdF9mdW4oZDEsIHNhbXBsZV9zaXplX2QxLCAidGhiMV9kZW1vX2JidWgiKSArCiAgbGFicyh4ID0gIldoYXQgYmVzdCBkZXNjcmliZXMgeW91ciBsZXZlbCBvZiBiZWxpZWYgaW4gQnVkZGhhPyIsIAogICAgICAgeSA9ICJwcm9wb3J0aW9uIikgKwogIHRoZW1lKGF4aXMudGV4dC54ID0gZWxlbWVudF90ZXh0KGFuZ2xlID0gNDUsIGhqdXN0ID0gMSwgdmp1c3QgPSAxKSkKYGBgCgojIyMgYHRoYjFfZGVtb19ib3NwYDogIldoYXQgYmVzdCBkZXNjcmliZXMgeW91ciBsZXZlbCBvZiBiZWxpZWYgaW4gYW5vdGhlciBzcGlyaXR1YWwgYmVpbmcgKG90aGVyIHRoYW4gR29kIG9yIEJ1ZGRoYSk/IgoKYGBge3IsIGZpZy53aWR0aCA9IDQsIGZpZy5hc3AgPSAwLjR9CmRlbW9fcGxvdF9mdW4oZDEsIHNhbXBsZV9zaXplX2QxLCAidGhiMV9kZW1vX2Jvc3AiKSArCiAgbGFicyh4ID0gIldoYXQgYmVzdCBkZXNjcmliZXMgeW91ciBsZXZlbCBvZiBiZWxpZWYgaW4gYW5vdGhlciBzcGlyaXR1YWwgYmVpbmcgKG90aGVyIHRoYW4gR29kIG9yIEJ1ZGRoYSk/IiwgCiAgICAgICB5ID0gInByb3BvcnRpb24iKSArCiAgdGhlbWUoYXhpcy50ZXh0LnggPSBlbGVtZW50X3RleHQoYW5nbGUgPSA0NSwgaGp1c3QgPSAxLCB2anVzdCA9IDEpKQpgYGAKCiMjIyBgdGhiMV9kZW1vX2F0c25gOiAiV2hhdCBiZXN0IGRlc2NyaWJlcyB5b3VyIGF0dGl0dWRlIHRvd2FyZHMgdGhlIHN1cGVybmF0dXJhbD8KCmBgYHtyLCBmaWcud2lkdGggPSA0LCBmaWcuYXNwID0gMC40fQpkZW1vX3Bsb3RfZnVuKGQxLCBzYW1wbGVfc2l6ZV9kMSwgInRoYjFfZGVtb19hdHNuIikgKwogIGxhYnMoeCA9ICJXaGF0IGJlc3QgZGVzY3JpYmVzIHlvdXIgYXR0aXR1ZGUgdG93YXJkcyB0aGUgc3VwZXJuYXR1cmFsPyIsIAogICAgICAgeSA9ICJwcm9wb3J0aW9uIikgKwogIHNjYWxlX3hfZGlzY3JldGUobGFiZWxzID0gMTo1KQpgYGAKClJlc3BvbnNlIG9wdGlvbnM6CgoxLiAiVGhlcmUgaXMgbm8gc3VjaCB0aGluZyBhcyBzdXBlcm5hdHVyYWwgZm9yY2VzIG9yIGJlaW5ncyIKMi4gIldlIGNhbm5vdCBrbm93IGlmIHRoZXJlIGFyZSBzdXBlcm5hdHVyYWwgZm9yY2VzIGFuZCBiZWluZ3MiCjMuICJUaGVyZSBtaWdodCBiZSBzdXBlcm5hdHVyYWwgZm9yY2VzIGFuZCBiZWluZ3MiCjQuICJTdXBlcm5hdHVyYWwgZm9yY2VzIGFuZCBiZWluZ3MgZXhpc3QgYnV0IHdlIGNhbm5vdCBrbm93IHdoYXQgdGhleSBhcmUgbGlrZSIKNS4gIlRoZXJlIGRlZmluaXRlbHkgYXJlIHN1cGVybmF0dXJhbCBmb3JjZXMgYW5kIGJlaW5ncyIKCiMjIyBgdGhiMV9kZW1vX2ltc25gOiAiRnJvbSAxIHRvIDcsIGhvdyBpbXBvcnRhbnQgdG8geW91IGlzIHlvdXIgYXR0aXR1ZGUgdG93YXJkIHRoZSBzdXBlcm5hdHVyYWw/ICgxID0gbm90IGltcG9ydGFudCBhdCBhbGwsIDcgPSBvZiB1dG1vc3QgaW1wb3J0YW5jZSkiCgpgYGB7ciwgZmlnLndpZHRoID0gNCwgZmlnLmFzcCA9IDAuNH0KZGVtb19wbG90X2Z1bihkMSwgc2FtcGxlX3NpemVfZDEsICJ0aGIxX2RlbW9faW1zbiIpICsKICBsYWJzKHggPSAiRnJvbSAxIHRvIDcsIGhvdyBpbXBvcnRhbnQgdG8geW91IGlzIHlvdXIgYXR0aXR1ZGUgdG93YXJkIHRoZSBzdXBlcm5hdHVyYWw/IiwgCiAgICAgICB5ID0gInByb3BvcnRpb24iKQpgYGAKCgojIEFuYWx5c2VzCgpOb3csIGxldCdzIGxvb2sgYXQgaG93IHJlc3BvbnNlcyB0byBvdXIgdGhpbmsvYmVsaWV2ZSBxdWVzdGlvbnMgbWlnaHQgaGF2ZSB2YXJpZWQgZGVwZW5kaW5nIG9uIHJlbGlnaW9uL3JlbGlnaW9zaXR5LiBGb3Igbm93LCBJJ2xsIGp1c3QgZm9jdXMgb24gYSBjb3VwbGUgb2YgdmFyaWFibGVzIHRoYXQgc2VlbSB0byBoYXZlIGJlZW4gYW5zd2VyZWQgaW4gcmVhc29uYWJsZSB3YXlzLgoKIyMgUmVsaWdpb3VzIGFmZmlsaWF0aW9uCgpgYGB7cn0KZDFfdGVtcCA8LSBkMV9sb25nICU+JQogICMgZmlsdGVyKGNvdW50cnkgPT0gIlVTIikgJT4lCiAgbXV0YXRlKHJlbGlnX2NhdCA9IGNhc2Vfd2hlbigKICAgIHRoYjFfcmVsaWdpb24gPT0gIkNocmlzdGlhbiIgfCByZWxpZ2lvbiA9PSAiQ2hyaXN0aWFuIiB+ICJDaHJpc3RpYW4iLAogICAgZ3JlcGwoIk90aGVyIiwgdGhiMV9yZWxpZ2lvbikgfCAKICAgICAgZ3JlcGwoIk90aGVyIiwgcmVsaWdpb24pIHwKICAgICAgZ3JlcGwoIkJ1ZGRoIiwgdGhiMV9yZWxpZ2lvbikgfCAKICAgICAgZ3JlcGwoIkJ1ZGRoIiwgcmVsaWdpb24pIH4gIkJ1ZGRoaXN0L090aGVyIiwKICAgIHRoYjFfcmVsaWdpb24gPT0gIk5vdCByZWxpZ2lvdXMiIHwgaXMubmEodGhiMV9yZWxpZ2lvbikgfAogICAgICBpcy5uYShyZWxpZ2lvbikgfiAiTm90IHJlbGlnaW91cyIsCiAgICBUUlVFIH4gTkFfY2hhcmFjdGVyXykpICU+JQogIG11dGF0ZShyZWxpZ19jYXQgPSBmYWN0b3IocmVsaWdfY2F0LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgbGV2ZWxzID0gYygiQ2hyaXN0aWFuIiwgIk5vdCByZWxpZ2lvdXMiLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIkJ1ZGRoaXN0L090aGVyIikpKQoKc2FtcGxlX3NpemVfZDFfdGVtcCA8LSBkMV90ZW1wICU+JQogIGRpc3RpbmN0KGNvdW50cnksIHRoYjFfc3ViaiwgcmVsaWdfY2F0KSAlPiUKICBjb3VudChjb3VudHJ5LCByZWxpZ19jYXQpICU+JQogIGFycmFuZ2UoY291bnRyeSwgcmVsaWdfY2F0KSAlPiUKICBtdXRhdGUobGFiID0gcGFzdGUwKGNvdW50cnksICI6ICIsIHJlbGlnX2NhdCwgIiAobj0iLCBuLCAiKSIpLAogICAgICAgICBvcmRlciA9IDE6bnJvdyguKSwKICAgICAgICAgbGFiID0gcmVvcmRlcihsYWIsIG9yZGVyKSkKYGBgCgpgYGB7ciwgZmlnLndpZHRoID0gMywgZmlnLmFzcCA9IDEuMn0KZDFfdGVtcCAlPiUgCiAgc2VsZWN0KC1vcmRlcikgJT4lCiAgbGVmdF9qb2luKHNhbXBsZV9zaXplX2QxX3RlbXApICU+JQogIGdncGxvdChhZXMoeCA9IHN1cGVyX2NhdCwgCiAgICAgICAgICAgICAjIHB1dCBOQXMgb24gdG9wIG9mIGJhcgogICAgICAgICAgICAgZmlsbCA9IGZhY3RvcihyZXNwb25zZV9jYXQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgIGxldmVscyA9IGMoTkEsICJ0aGluayIsICJiZWxpZXZlIiksIAogICAgICAgICAgICAgICAgICAgICAgICAgICBleGNsdWRlID0gTlVMTCkpKSArCiAgZmFjZXRfd3JhcCguIH4gbGFiLCBuY29sID0gMykgKyAjLCBzY2FsZXMgPSAiZnJlZSIsIHNwYWNlID0gImZyZWUiKSArCiAgZ2VvbV9iYXIocG9zaXRpb24gPSAiZmlsbCIsIGFscGhhID0gMC43LCBjb2xvciA9ICJibGFjayIsIHNpemUgPSAwLjEpICsKICAjIGdlb21faGxpbmUoeWludGVyY2VwdCA9IDAuNSwgbHR5ID0gMikgKwogIHRoZW1lKGF4aXMudGV4dC54ID0gZWxlbWVudF90ZXh0KGFuZ2xlID0gNDUsIGhqdXN0ID0gMSwgdmp1c3QgPSAxKSwKICAgICAgICBsZWdlbmQucG9zaXRpb24gPSAidG9wIikgKwogIGxhYnMoeCA9ICJjYXRlZ29yeSIsIHkgPSAicHJvcG9ydGlvbiIsIGZpbGwgPSAicmVzcG9uc2UiKQpgYGAKCmBgYHtyfQpyMS45X3VzIDwtIGxtZXIoYmVsaWV2ZSB+IHN1cGVyX2NhdCAqIHJlbGlnX2NhdAogICAgICAgICAgICAgICAgIyArICgxICsgc3VwZXJfY2F0IHwgdGhiMV9zdWJqKSArICgxIHwgcXVlc3Rpb24pLCAjIGZhaWxlZCB0byBjb252ZXJnZSAKICAgICAgICAgICAgICAgICMgKyAoMSArIHN1cGVyX2NhdCB8fCB0aGIxX3N1YmopICsgKDEgfCBxdWVzdGlvbiksICMgZmFpbGVkIHRvIGNvbnZlcmdlIAogICAgICAgICAgICAgICAgKyAoMSB8IHRoYjFfc3ViaikgKyAoMSB8IHF1ZXN0aW9uKSwKICAgICAgICAgICAgICAgIGRhdGEgPSBkMV90ZW1wICU+JQogICAgICAgICAgICAgICAgICBmaWx0ZXIoY291bnRyeSA9PSAiVVMiLCAKICAgICAgICAgICAgICAgICAgICAgICAgIHJlbGlnX2NhdCAlaW4lIGMoIkNocmlzdGlhbiIsICJOb3QgcmVsaWdpb3VzIikpLAogICAgICAgICAgICAgICAgY29udHJhc3RzID0gbGlzdChyZWxpZ19jYXQgPSAiY29udHIuc3VtIikpCmBgYAoKYGBge3J9CnJlZ3RhYl9mdW4ocjEuOV91cywgCiAgICAgICAgICAgcHJlZGljdG9yX3ZhcjEgPSAicmVsaWdfY2F0MSIsIAogICAgICAgICAgIHByZWRpY3Rvcl9uYW1lMSA9ICJSZWxpZ2lvdXMgYWZmaWxpYXRpb24gKENocmlzdGlhbiB2cy4gbm90IHJlbGlnaW91cykiKSAlPiUKICByZWd0YWJfc3R5bGVfZnVuKHJvd19lbXBoID0gNCkKYGBgCgojIyBSZWxpZ2lvc2l0eQoKIyMjIGB0aGIxX2RlbW9fcmVseWA6IOKAnEZyb20gMSB0byA3LCBob3cgcmVsaWdpb3VzIGFyZSB5b3U/ICgxID0gbm90IHJlbGlnaW91cyBhdCBhbGwsIDcgPSBleHRyZW1lbHkgcmVsaWdpb3VzKeKAnQoKYGBge3IsIGVjaG8gPSBUfQpyMS42IDwtIGxtZXIoYmVsaWV2ZSB+IHN1cGVyX2NhdCAqIGNvdW50cnkgKiB0aGIxX2RlbW9fcmVseV9udW0KICAgICAgICAgICAgICsgKDEgKyBzdXBlcl9jYXQgfCB0aGIxX3N1YmopICsgKDEgfCBxdWVzdGlvbiksCiAgICAgICAgICAgICBkYXRhID0gZDFfbG9uZyAlPiUgCiAgICAgICAgICAgICAgIGZpbHRlcihjb3VudHJ5ICE9ICJUaGFpbGFuZCIpICU+JQogICAgICAgICAgICAgICBtdXRhdGUodGhiMV9kZW1vX3JlbHlfbnVtID0gc2NhbGUodGhiMV9kZW1vX3JlbHlfbnVtKSksCiAgICAgICAgICAgICBjb250cmFzdHMgPSBsaXN0KGNvdW50cnkgPSAiY29udHIuc3VtIikpCmBgYAoKYGBge3J9CnJlZ3RhYl9mdW4ocjEuNiwgc3RkX2JldGEgPSBULCAKICAgICAgICAgICBjb3VudHJ5X3ZhcjEgPSAiY291bnRyeTEiLCBjb3VudHJ5X25hbWUxID0gIkNvdW50cnkgKFVTKSIsCiAgICAgICAgICAgY291bnRyeV92YXIyID0gImNvdW50cnkyIiwgY291bnRyeV9uYW1lMiA9ICJDb3VudHJ5IChHaGFuYSkiLAogICAgICAgICAgIGNvdW50cnlfdmFyMyA9ICJjb3VudHJ5MyIsIGNvdW50cnlfbmFtZTMgPSAiQ291bnRyeSAoQ2hpbmEpIiwKICAgICAgICAgICBwcmVkaWN0b3JfdmFyMSA9ICJ0aGIxX2RlbW9fcmVseV9udW0iLCAKICAgICAgICAgICBwcmVkaWN0b3JfbmFtZTEgPSAiSG93IHJlbGlnaW91cyBhcmUgeW91PyIpICU+JSAKICByZWd0YWJfc3R5bGVfZnVuKHJvd19lbXBoID0gYygxMCwgMTQ6MTYpKQpgYGAKClRoaXMgYW5hbHlzaXMgc3VnZ2VzdHMgdGhhdCBncmVhdGVyIHJlbGlnaW9zaXR5IHdhcyBhc3NvY2lhdGVkIHdpdGggYW4gaW5jcmVhc2VkIGRpc3RpbmN0aW9uIGJldHdlZW4gcmVsaWdpb3VzIGFuZCBmYWN0IHF1ZXN0aW9ucy4gKE5vdGUgdGhhdCB0aGlzIGFuYWx5c2lzIG9taXRzIHBhcnRpY2lwYW50cyBmcm9tIFRoYWlsYW5kLCB3aG8gZGlkIG5vdCBhbnN3ZXIgdGhpcyBxdWVzdGlvbiBhYm91dCByZWxpZ2lvc2l0eS4pCgpgYGB7cn0KZDFfbG9uZyAlPiUgCiAgZmlsdGVyKGNvdW50cnkgIT0gIlRoYWlsYW5kIikgJT4lCiAgZ3JvdXBfYnkoY291bnRyeSwgdGhiMV9zdWJqLCB0aGIxX2RlbW9fcmVseV9udW0sIHN1cGVyX2NhdCkgJT4lCiAgc3VtbWFyaXNlKGJlbGlldmVfcHJvcCA9IG1lYW4oYmVsaWV2ZSwgbmEucm0gPSBUKSkgJT4lCiAgdW5ncm91cCgpICU+JQogIGdncGxvdChhZXMoeCA9IHRoYjFfZGVtb19yZWx5X251bSwgeSA9IGJlbGlldmVfcHJvcCwgY29sb3IgPSBzdXBlcl9jYXQpKSArCiAgZmFjZXRfZ3JpZCguIH4gY291bnRyeSkgKwogIGdlb21faml0dGVyKGFscGhhID0gMC4yLCB3aWR0aCA9IDAuMSwgaGVpZ2h0ID0gMC4wMikgKwogIGdlb21fc21vb3RoKG1ldGhvZCA9ICJsbSIpICsKICBzY2FsZV94X2NvbnRpbnVvdXMoYnJlYWtzID0gMDo2LCBsYWJlbHMgPSBsZXZlbHMoZDEkdGhiMV9kZW1vX3JlbHkpKSArCiAgdGhlbWUobGVnZW5kLnBvc2l0aW9uID0gInRvcCIpICsKICBsYWJzKHggPSAiSG93IHJlbGlnaW91cyBhcmUgeW91PyIsIHkgPSAiUHJvcG9ydGlvbiAnYmVsaWV2ZScgcmVzcG9uc2VzIiwKICAgICAgIGNvbG9yID0gIkNhdGVnb3J5IikKYGBgCgpgYGB7cn0KZDFfbG9uZyAlPiUgCiAgZmlsdGVyKGNvdW50cnkgIT0gIlRoYWlsYW5kIikgJT4lCiAgZ3JvdXBfYnkoY291bnRyeSwgdGhiMV9zdWJqLCB0aGIxX2RlbW9fcmVseV9udW0sIHN1cGVyX2NhdCkgJT4lCiAgc3VtbWFyaXNlKGJlbGlldmVfcHJvcCA9IG1lYW4oYmVsaWV2ZSwgbmEucm0gPSBUKSkgJT4lCiAgdW5ncm91cCgpICU+JQogIHNwcmVhZChzdXBlcl9jYXQsIGJlbGlldmVfcHJvcCkgJT4lCiAgbXV0YXRlKGRpZmYgPSByZWxpZ2lvdXMgLSBmYWN0KSAlPiUKICBnZ3Bsb3QoYWVzKHggPSB0aGIxX2RlbW9fcmVseV9udW0sIHkgPSBkaWZmKSkgKwogIGZhY2V0X2dyaWQoLiB+IGNvdW50cnkpICsKICBnZW9tX2ppdHRlcihhbHBoYSA9IDAuMiwgd2lkdGggPSAwLjEsIGhlaWdodCA9IDAuMDIpICsKICBnZW9tX3Ntb290aChtZXRob2QgPSAibG0iKSArCiAgc2NhbGVfeF9jb250aW51b3VzKGJyZWFrcyA9IDA6NiwgbGFiZWxzID0gbGV2ZWxzKGQxJHRoYjFfZGVtb19yZWx5KSkgKwogIHRoZW1lKGxlZ2VuZC5wb3NpdGlvbiA9ICJ0b3AiKSArCiAgbGFicyh4ID0gIkhvdyByZWxpZ2lvdXMgYXJlIHlvdT8iLCAKICAgICAgIHkgPSAiRGlmZmVyZW5jZSBpbiBwcm9wb3J0aW9uICdiZWxpZXZlJyByZXNwb25zZXNcbihyZWxpZ2lvdXMgcXVlc3Rpb25zIC0gZmFjdCBxdWVzdGlvbnMpIiwKICAgICAgIGNvbG9yID0gIkNhdGVnb3J5IikKYGBgCgojIyMgYHRoYjFfZGVtb19pbXByYDogIkZyb20gMSB0byA3LCBob3cgaW1wb3J0YW50IHRvIHlvdSBpcyB5b3VyIHJlbGlnaW91cyBwcmFjdGljZT8gICgxID0gbm90IGltcG9ydGFudCBhdCBhbGwsIDcgPSBvZiB1dG1vc3QgaW1wb3J0YW5jZSkiCgpgYGB7ciwgZWNobyA9IFR9CnIxLjcgPC0gbG1lcihiZWxpZXZlIH4gc3VwZXJfY2F0ICogY291bnRyeSAqIHRoYjFfZGVtb19pbXByX251bQogICAgICAgICAgICAgKyAoMSArIHN1cGVyX2NhdCB8IHRoYjFfc3ViaikgKyAoMSB8IHF1ZXN0aW9uKSwKICAgICAgICAgICAgIGRhdGEgPSBkMV9sb25nICU+JSAKICAgICAgICAgICAgICAgZmlsdGVyKGNvdW50cnkgIT0gIlRoYWlsYW5kIikgJT4lCiAgICAgICAgICAgICAgIG11dGF0ZSh0aGIxX2RlbW9faW1wcl9udW0gPSBzY2FsZSh0aGIxX2RlbW9faW1wcl9udW0pKSwKICAgICAgICAgICAgIGNvbnRyYXN0cyA9IGxpc3QoY291bnRyeSA9ICJjb250ci5zdW0iKSkKYGBgCgpgYGB7cn0KcmVndGFiX2Z1bihyMS43LCBzdGRfYmV0YSA9IFQsIAogICAgICAgICAgIGNvdW50cnlfdmFyMSA9ICJjb3VudHJ5MSIsIGNvdW50cnlfbmFtZTEgPSAiQ291bnRyeSAoVVMpIiwKICAgICAgICAgICBjb3VudHJ5X3ZhcjIgPSAiY291bnRyeTIiLCBjb3VudHJ5X25hbWUyID0gIkNvdW50cnkgKEdoYW5hKSIsCiAgICAgICAgICAgY291bnRyeV92YXIzID0gImNvdW50cnkzIiwgY291bnRyeV9uYW1lMyA9ICJDb3VudHJ5IChDaGluYSkiLAogICAgICAgICAgIHByZWRpY3Rvcl92YXIxID0gInRoYjFfZGVtb19pbXByX251bSIsIAogICAgICAgICAgIHByZWRpY3Rvcl9uYW1lMSA9ICJIb3cgaW1wb3J0YW50IGlzIHlvdXIgcmVsaWdpb3VzIHByYWN0aWNlPyIpICU+JSAKICByZWd0YWJfc3R5bGVfZnVuKHJvd19lbXBoID0gYygxMCwgMTQ6MTYpKQpgYGAKClRoaXMgYW5hbHlzaXMgc3VnZ2VzdHMgdGhhdCBtb3JlIGltcG9ydGFuY2UgcGxhY2VkIG9uIHJlbGlnaW91cyBwcmFjdGljZSB3YXMgYXNzb2NpYXRlZCB3aXRoIGFuIGluY3JlYXNlZCBkaXN0aW5jdGlvbiBiZXR3ZWVuIHJlbGlnaW91cyBhbmQgZmFjdCBxdWVzdGlvbnMuIChOb3RlIHRoYXQgdGhpcyBhbmFseXNpcyBvbWl0cyBwYXJ0aWNpcGFudHMgZnJvbSBUaGFpbGFuZCwgd2hvIGRpZCBub3QgYW5zd2VyIHRoaXMgcXVlc3Rpb24gYWJvdXQgcmVsaWdpb3NpdHkuKQoKYGBge3J9CmQxX2xvbmcgJT4lIAogIGZpbHRlcihjb3VudHJ5ICE9ICJUaGFpbGFuZCIpICU+JQogIGdyb3VwX2J5KGNvdW50cnksIHRoYjFfc3ViaiwgdGhiMV9kZW1vX2ltcHJfbnVtLCBzdXBlcl9jYXQpICU+JQogIHN1bW1hcmlzZShiZWxpZXZlX3Byb3AgPSBtZWFuKGJlbGlldmUsIG5hLnJtID0gVCkpICU+JQogIHVuZ3JvdXAoKSAlPiUKICBnZ3Bsb3QoYWVzKHggPSB0aGIxX2RlbW9faW1wcl9udW0sIHkgPSBiZWxpZXZlX3Byb3AsIGNvbG9yID0gc3VwZXJfY2F0KSkgKwogIGZhY2V0X2dyaWQoLiB+IGNvdW50cnkpICsKICBnZW9tX2ppdHRlcihhbHBoYSA9IDAuMiwgd2lkdGggPSAwLjEsIGhlaWdodCA9IDAuMDIpICsKICBnZW9tX3Ntb290aChtZXRob2QgPSAibG0iKSArCiAgc2NhbGVfeF9jb250aW51b3VzKGJyZWFrcyA9IDA6NiwgbGFiZWxzID0gbGV2ZWxzKGQxJHRoYjFfZGVtb19pbXByKSkgKwogIHRoZW1lKGxlZ2VuZC5wb3NpdGlvbiA9ICJ0b3AiKSArCiAgbGFicyh4ID0gIkhvdyBpbXBvcnRhbnQgaXMgeW91ciByZWxpZ2lvdXMgcHJhY3RpY2U/IiwgeSA9ICJQcm9wb3J0aW9uICdiZWxpZXZlJyByZXNwb25zZXMiLAogICAgICAgY29sb3IgPSAiQ2F0ZWdvcnkiKQpgYGAKCmBgYHtyfQpkMV9sb25nICU+JSAKICBmaWx0ZXIoY291bnRyeSAhPSAiVGhhaWxhbmQiKSAlPiUKICBncm91cF9ieShjb3VudHJ5LCB0aGIxX3N1YmosIHRoYjFfZGVtb19pbXByX251bSwgc3VwZXJfY2F0KSAlPiUKICBzdW1tYXJpc2UoYmVsaWV2ZV9wcm9wID0gbWVhbihiZWxpZXZlLCBuYS5ybSA9IFQpKSAlPiUKICB1bmdyb3VwKCkgJT4lCiAgc3ByZWFkKHN1cGVyX2NhdCwgYmVsaWV2ZV9wcm9wKSAlPiUKICBtdXRhdGUoZGlmZiA9IHJlbGlnaW91cyAtIGZhY3QpICU+JQogIGdncGxvdChhZXMoeCA9IHRoYjFfZGVtb19pbXByX251bSwgeSA9IGRpZmYpKSArCiAgZmFjZXRfZ3JpZCguIH4gY291bnRyeSkgKwogIGdlb21faml0dGVyKGFscGhhID0gMC4yLCB3aWR0aCA9IDAuMSwgaGVpZ2h0ID0gMC4wMikgKwogIGdlb21fc21vb3RoKG1ldGhvZCA9ICJsbSIpICsKICBzY2FsZV94X2NvbnRpbnVvdXMoYnJlYWtzID0gMDo2LCBsYWJlbHMgPSBsZXZlbHMoZDEkdGhiMV9kZW1vX2ltcHIpKSArCiAgdGhlbWUobGVnZW5kLnBvc2l0aW9uID0gInRvcCIpICsKICBsYWJzKHggPSAiSG93IGltcG9ydGFudCBpcyB5b3VyIHJlbGlnaW91cyBwcmFjdGljZT8iLCAKICAgICAgIHkgPSAiRGlmZmVyZW5jZSBpbiBwcm9wb3J0aW9uICdiZWxpZXZlJyByZXNwb25zZXNcbihyZWxpZ2lvdXMgcXVlc3Rpb25zIC0gZmFjdCBxdWVzdGlvbnMpIiwKICAgICAgIGNvbG9yID0gIkNhdGVnb3J5IikKYGBgCgojIyMgYHRoYjFfZGVtb3dvcnNgOiAiSG93IG9mdGVuIGRvIHlvdSBhdHRlbmQgcGxhY2VzIG9mIHdvcnNoaXA/IgoKYGBge3IsIGVjaG8gPSBUfQpyMS44IDwtIGxtZXIoYmVsaWV2ZSB+IHN1cGVyX2NhdCAqIGNvdW50cnkgKiB0aGIxX2RlbW9fd29yc19udW0KICAgICAgICAgICAgICsgKDEgKyBzdXBlcl9jYXQgfCB0aGIxX3N1YmopICsgKDEgfCBxdWVzdGlvbiksCiAgICAgICAgICAgICBkYXRhID0gZDFfbG9uZyAlPiUgCiAgICAgICAgICAgICAgIG11dGF0ZSh0aGIxX2RlbW9fd29yc19udW0gPSBzY2FsZSh0aGIxX2RlbW9fd29yc19udW0pKSkKYGBgCgpgYGB7cn0KcmVndGFiX2Z1bihyMS44LCBzdGRfYmV0YSA9IFQsIAogICAgICAgICAgIHByZWRpY3Rvcl92YXIxID0gInRoYjFfZGVtb193b3JzX251bSIsIAogICAgICAgICAgIHByZWRpY3Rvcl9uYW1lMSA9ICJIb3cgb2Z0ZW4gZG8geW91IGF0dGVuZCBwbGFjZXMgb2Ygd29yc2hpcD8iKSAlPiUgCiAgcmVndGFiX3N0eWxlX2Z1bihyb3dfZW1waCA9IGMoMTIsIDE3OjIwKSkKYGBgCgpUaGlzIGFuYWx5c2lzIHN1Z2dlc3RzIHRoYXQgZnJlcXVlbmN5IG9mIGF0dGVuZGVuY2Ugd2FzIGFzc29jaWF0ZWQgd2l0aCBhbiBpbmNyZWFzZWQgZGlzdGluY3Rpb24gYmV0d2VlbiByZWxpZ2lvdXMgYW5kIGZhY3QgcXVlc3Rpb25zLiAKCmBgYHtyfQpkMV9sb25nICU+JSAKICBncm91cF9ieShjb3VudHJ5LCB0aGIxX3N1YmosIHRoYjFfZGVtb193b3JzX251bSwgc3VwZXJfY2F0KSAlPiUKICBzdW1tYXJpc2UoYmVsaWV2ZV9wcm9wID0gbWVhbihiZWxpZXZlLCBuYS5ybSA9IFQpKSAlPiUKICB1bmdyb3VwKCkgJT4lCiAgZ2dwbG90KGFlcyh4ID0gdGhiMV9kZW1vX3dvcnNfbnVtLCB5ID0gYmVsaWV2ZV9wcm9wLCBjb2xvciA9IHN1cGVyX2NhdCkpICsKICBmYWNldF9ncmlkKC4gfiBjb3VudHJ5KSArCiAgZ2VvbV9qaXR0ZXIoYWxwaGEgPSAwLjIsIHdpZHRoID0gMC4xLCBoZWlnaHQgPSAwLjAyKSArCiAgZ2VvbV9zbW9vdGgobWV0aG9kID0gImxtIikgKwogIHNjYWxlX3hfY29udGludW91cyhicmVha3MgPSAwOjQsIGxhYmVscyA9IGxldmVscyhkMSR0aGIxX2RlbW9fd29ycykpICsKICB0aGVtZShsZWdlbmQucG9zaXRpb24gPSAidG9wIiwKICAgICAgICBheGlzLnRleHQueCA9IGVsZW1lbnRfdGV4dChhbmdsZSA9IDQ1LCBoanVzdCA9IDEsIHZqdXN0ID0gMSkpICsKICBsYWJzKHggPSAiSG93IG9mdGVuIGRvIHlvdSBhdHRlbmQgcGxhY2VzIG9mIHdvcnNoaXA/IiwgCiAgICAgICB5ID0gIlByb3BvcnRpb24gJ2JlbGlldmUnIHJlc3BvbnNlcyIsCiAgICAgICBjb2xvciA9ICJDYXRlZ29yeSIpCmBgYAoKYGBge3J9CmQxX2xvbmcgJT4lIAogIGdyb3VwX2J5KGNvdW50cnksIHRoYjFfc3ViaiwgdGhiMV9kZW1vX3dvcnNfbnVtLCBzdXBlcl9jYXQpICU+JQogIHN1bW1hcmlzZShiZWxpZXZlX3Byb3AgPSBtZWFuKGJlbGlldmUsIG5hLnJtID0gVCkpICU+JQogIHVuZ3JvdXAoKSAlPiUKICBzcHJlYWQoc3VwZXJfY2F0LCBiZWxpZXZlX3Byb3ApICU+JQogIG11dGF0ZShkaWZmID0gcmVsaWdpb3VzIC0gZmFjdCkgJT4lCiAgZ2dwbG90KGFlcyh4ID0gdGhiMV9kZW1vX3dvcnNfbnVtLCB5ID0gZGlmZikpICsKICBmYWNldF9ncmlkKC4gfiBjb3VudHJ5KSArCiAgZ2VvbV9qaXR0ZXIoYWxwaGEgPSAwLjIsIHdpZHRoID0gMC4xLCBoZWlnaHQgPSAwLjAyKSArCiAgZ2VvbV9zbW9vdGgobWV0aG9kID0gImxtIikgKwogIHNjYWxlX3hfY29udGludW91cyhicmVha3MgPSAwOjQsIGxhYmVscyA9IGxldmVscyhkMSR0aGIxX2RlbW9fd29ycykpICsKICB0aGVtZShsZWdlbmQucG9zaXRpb24gPSAidG9wIiwKICAgICAgICBheGlzLnRleHQueCA9IGVsZW1lbnRfdGV4dChhbmdsZSA9IDQ1LCBoanVzdCA9IDEsIHZqdXN0ID0gMSkpICsKICBsYWJzKHggPSAiSG93IG9mdGVuIGRvIHlvdSBhdHRlbmQgcGxhY2VzIG9mIHdvcnNoaXA/IiwgCiAgICAgICB5ID0gIkRpZmZlcmVuY2UgaW4gcHJvcG9ydGlvbiAnYmVsaWV2ZScgcmVzcG9uc2VzXG4ocmVsaWdpb3VzIHF1ZXN0aW9ucyAtIGZhY3QgcXVlc3Rpb25zKSIsCiAgICAgICBjb2xvciA9ICJDYXRlZ29yeSIpCmBgYAoKCgoK